<script setup>
import { ref, onMounted } from 'vue'
import { useRoute } from 'vue-router'
import { openPaymentModal } from '../utils/paymentUtils.js'

const route = useRoute()
const showId = parseInt(route.params.id)

// 模拟完整的演出数据
const showDetails = ref(null)
const loading = ref(true)
const error = ref(null)

// 模拟演出评论数据
const reviews = [
  {
    id: 1,
    name: '李小明',
    rating: 5,
    date: '2024-05-10',
    content: '表演非常精彩，演员们的技艺精湛，剧情跌宕起伏，孩子们看得非常入迷！强烈推荐给所有家庭！'
  },
  {
    id: 2,
    name: '王小红',
    rating: 4,
    date: '2024-05-08',
    content: '音效和光影效果都很棒，唯一遗憾是座位有点偏，下次一定要提前选座。'
  },
  {
    id: 3,
    name: '张大山',
    rating: 5,
    date: '2024-05-05',
    content: '作为非遗爱好者，这是我看过最正宗的皮影戏表演，传承人们的坚持让人感动。'
  }
]

// 常见问题数据
const faqs = [
  {
    question: '购买后如何取票？',
    answer: '演出当天，凭购票二维码在剧场大厅自助取票机换取纸质票。'
  },
  {
    question: '可以选座吗？',
    answer: '可以，在购票时系统会提供在线选座功能。'
  },
  {
    question: '是否支持退票？',
    answer: '演出前48小时可申请退票，将收取票价10%的手续费；演出前24-48小时收取30%手续费；演出前24小时内不予退票。'
  },
  {
    question: '儿童需要购票吗？',
    answer: '1.2米以下儿童谢绝入场，1.2米以上儿童需持票入场。'
  }
]

// 相关推荐
const relatedShows = [
  {
    id: 3,
    title: '杨家将',
    date: '2024-06-25',
    location: '西安大剧院',
    image: 'https://picsum.photos/id/152/300/200',
    price: 200
  },
  {
    id: 4,
    title: '武松打虎',
    date: '2024-07-10',
    location: '成都文化宫',
    image: 'https://picsum.photos/id/153/300/200',
    price: 180
  }
]

// 模拟加载演出详情
onMounted(() => {
  // 模拟API请求延迟
  setTimeout(() => {
    try {
      // 根据ID获取对应的演出详情
      if (showId === 1) {
        showDetails.value = {
          id: 1,
          title: '大闹天宫',
          type: '传统皮影戏',
          duration: '约90分钟（含中场休息15分钟）',
          audience: '全年龄段',
          date: '2024-06-15（周六） 19:30',
          venue: '北京展览馆剧场',
          address: '北京市西城区西直门外大街135号',
          transportation: '地铁2号线西直门站C口出，步行10分钟；附近有地下停车场，首小时10元。',
          images: [
            'https://picsum.photos/id/150/800/600',
            'https://picsum.photos/id/154/800/600',
            'https://picsum.photos/id/155/800/600'
          ],
          video: 'https://example.com/trailer.mp4',
          synopsis: '花果山美猴王横空出世，闯龙宫、闹地府，被天庭招安后却大闹蟠桃会，与十万天兵天将展开一场惊天动地的对决...本剧通过光影艺术，完美再现孙悟空不畏强权、追求自由的经典故事。',
          highlights: [
            '国家级非遗传承人主演',
            '沉浸式现场配乐',
            '传统工艺手工雕刻皮影',
            '多媒体技术融合创新',
            '经典剧情全新演绎'
          ],
          performanceGroup: '北京龙在天皮影艺术团',
          artisticDirector: '国家级非遗传承人 张三',
          leadActors: ['皮影表演艺术家 李四', '青年演员 王五'],
          ticketTypes: [
            { 
              name: 'VIP区', 
              price: 380, 
              description: '最佳观赏视角，含精美纪念品和演出后与演员合影机会',
              availability: '紧张'
            },
            { 
              name: '甲等票', 
              price: 280, 
              description: '一层中间区域，视野良好',
              availability: '充足'
            },
            { 
              name: '乙等票', 
              price: 180, 
              description: '一层两侧或二层',
              availability: '充足'
            },
            { 
              name: '学生票', 
              price: 120, 
              description: '凭有效学生证购买，需现场验证',
              availability: '适中'
            }
          ],
          promotions: [
            { name: '早鸟票', description: '即日起至5月31日，所有票档享8折优惠' },
            { name: '家庭套票', description: '2大1小（乙等票）仅需450元' }
          ],
          notices: [
            '购票需实名制，每人限购5张',
            '取票方式：电子票/现场取票（剧场大厅自助取票机）',
            '退换货政策：演出前48小时可申请退票，收取票价10%手续费；24-48小时收取30%手续费；24小时内不予退票',
            '儿童购票标准：1.2米以下儿童谢绝入场，1.2米以上儿童需持票入场',
            '客服热线：400-123-4567（工作日9:00-18:00）'
          ],
          selectedTickets: [],
          seatSelection: {
            available: true,
            sections: [
              { name: 'VIP区', rows: 3, seatsPerRow: 20 },
              { name: '甲等区', rows: 5, seatsPerRow: 25 },
              { name: '乙等区', rows: 8, seatsPerRow: 30 }
            ]
          }
        }
      } else if (showId === 2) {
        showDetails.value = {
          id: 2,
          title: '白蛇传',
          type: '传统皮影戏',
          duration: '约100分钟（含中场休息15分钟）',
          audience: '全年龄段',
          date: '2024-06-20（周四） 19:30',
          venue: '上海文化中心',
          address: '上海市黄浦区延安东路433号',
          transportation: '地铁8号线人民广场站19号口出，步行5分钟；附近有多个收费停车场。',
          images: [
            'https://picsum.photos/id/151/800/600',
            'https://picsum.photos/id/156/800/600',
            'https://picsum.photos/id/157/800/600'
          ],
          video: 'https://example.com/trailer2.mp4',
          synopsis: '千年蛇妖白素贞与许仙相遇于西湖断桥，结为夫妻。却因法海和尚的阻挠，被镇压在雷峰塔下，最终在儿子许仕林的努力下重见天日...这是一段跨越千年的爱情传奇，通过皮影艺术的独特魅力展现。',
          highlights: [
            '江南皮影戏代表作品',
            '典雅婉转的唱腔设计',
            '精美的传统皮影道具',
            '感人至深的爱情故事',
            '适合家庭亲子观看'
          ],
          performanceGroup: '上海江南皮影艺术团',
          artisticDirector: '国家一级演员 赵六',
          leadActors: ['青年表演艺术家 钱七', '优秀演员 孙八'],
          ticketTypes: [
            { 
              name: 'VIP区', 
              price: 420, 
              description: '最佳观赏视角，含精美纪念品',
              availability: '紧张'
            },
            { 
              name: '甲等票', 
              price: 320, 
              description: '一层中间区域',
              availability: '适中'
            },
            { 
              name: '乙等票', 
              price: 220, 
              description: '一层两侧或二层',
              availability: '充足'
            },
            { 
              name: '学生票', 
              price: 150, 
              description: '凭有效学生证购买',
              availability: '充足'
            }
          ],
          promotions: [
            { name: '早鸟票', description: '即日起至6月5日，所有票档享8.5折优惠' },
            { name: '情侣套票', description: '2张甲等票仅需580元' }
          ],
          notices: [
            '购票需实名制，每人限购4张',
            '取票方式：电子票/现场取票',
            '退换货政策：演出前72小时可申请退票，收取票价15%手续费；其他时间不予退票',
            '儿童购票标准：所有儿童需持票入场',
            '客服热线：400-765-4321（每日9:00-20:00）'
          ]
        }
      } else {
        error.value = '未找到该演出信息'
      }
    } catch (err) {
      error.value = '加载失败，请稍后重试'
    } finally {
      loading.value = false
    }
  }, 500)
})

// 处理购票按钮点击
const handleBuyTicket = (ticketType) => {
  if (ticketType.availability === '售罄') {
    alert('该票种已售罄')
    return
  }
  
  // 跳转到选座页面（这里简化为直接打开支付弹窗）
  const productInfo = {
    id: `TICKET-${showDetails.value.id}-${ticketType.name}`,
    name: `${showDetails.value.title} - ${ticketType.name}`,
    price: ticketType.price,
    details: {
      showDate: showDetails.value.date,
      venue: showDetails.value.venue,
      showTitle: showDetails.value.title,
      ticketType: ticketType.name
    }
  }
  
  openPaymentModal(productInfo)
}

// 跳转到其他演出详情
const goToRelatedShow = (relatedShowId) => {
  router.push({ name: 'show-details', params: { id: relatedShowId } })
}
</script>

<template>
  <div class="show-details-container">
    <div v-if="loading" class="loading-container">
      <div class="loading-spinner"></div>
      <p>加载中...</p>
    </div>
    
    <div v-else-if="error" class="error-container">
      <p class="error-message">{{ error }}</p>
      <router-link to="/home" class="btn btn-primary">返回首页</router-link>
    </div>
    
    <template v-else-if="showDetails">
      <!-- 演出海报与图集 -->
      <section class="show-hero">
        <div class="container">
          <div class="hero-content">
            <div class="show-info">
              <h1 class="show-title">{{ showDetails.title }}</h1>
              <div class="show-meta">
                <span class="show-type">{{ showDetails.type }}</span>
                <span class="show-duration">{{ showDetails.duration }}</span>
                <span class="show-audience">{{ showDetails.audience }}</span>
              </div>
              <div class="show-basic-info">
                <p class="show-date">{{ showDetails.date }}</p>
                <p class="show-venue">{{ showDetails.venue }}</p>
                <p class="show-address">{{ showDetails.address }}</p>
              </div>
              <div class="action-buttons">
                <button 
                  class="btn btn-primary"
                  @click="handleBuyTicket(showDetails.ticketTypes[0])"
                >
                  立即抢票
                </button>
              </div>
            </div>
            <div class="show-gallery">
              <div class="main-image-container">
                <img :src="showDetails.images[0]" :alt="showDetails.title" class="main-image" />
              </div>
              <div class="thumbnails">
                <div 
                  v-for="(img, index) in showDetails.images" 
                  :key="index"
                  class="thumbnail"
                >
                  <img :src="img" :alt="`${showDetails.title}剧照${index + 1}`" />
                </div>
              </div>
            </div>
          </div>
        </div>
      </section>

      <!-- 演出详情 -->
      <section class="show-details-section container">
        <div class="details-tabs">
          <div class="tab active" data-tab="synopsis">剧情简介</div>
          <div class="tab" data-tab="highlights">演出亮点</div>
          <div class="tab" data-tab="cast">演职员信息</div>
          <div class="tab" data-tab="venue">场馆信息</div>
        </div>
        
        <div class="tab-content active" id="synopsis">
          <h2 class="section-title">{{ showDetails.title }}</h2>
          <p class="synopsis-text">{{ showDetails.synopsis }}</p>
        </div>
        
        <div class="tab-content" id="highlights">
          <h2 class="section-title">演出亮点</h2>
          <ul class="highlights-list">
            <li v-for="(highlight, index) in showDetails.highlights" :key="index">
              {{ highlight }}
            </li>
          </ul>
        </div>
        
        <div class="tab-content" id="cast">
          <h2 class="section-title">演职员信息</h2>
          <div class="cast-info">
            <p><strong>演出团体：</strong>{{ showDetails.performanceGroup }}</p>
            <p><strong>艺术顾问：</strong>{{ showDetails.artisticDirector }}</p>
            <p><strong>主演：</strong>{{ showDetails.leadActors.join('、') }}</p>
          </div>
        </div>
        
        <div class="tab-content" id="venue">
          <h2 class="section-title">场馆信息</h2>
          <div class="venue-info">
            <p><strong>演出场馆：</strong>{{ showDetails.venue }}</p>
            <p><strong>详细地址：</strong>{{ showDetails.address }}</p>
            <p><strong>交通指南：</strong>{{ showDetails.transportation }}</p>
            <div class="map-placeholder">
              <p>地图加载中...</p>
            </div>
          </div>
        </div>
      </section>

      <!-- 票档与价格 -->
      <section class="ticket-section container">
        <h2 class="section-title">票档与价格</h2>
        <div class="ticket-types">
          <div 
            v-for="(ticket, index) in showDetails.ticketTypes" 
            :key="index"
            class="ticket-type"
            :class="{ 'sold-out': ticket.availability === '售罄' }"
          >
            <div class="ticket-header">
              <h3 class="ticket-name">{{ ticket.name }}</h3>
              <span class="ticket-price">¥{{ ticket.price }}</span>
            </div>
            <p class="ticket-description">{{ ticket.description }}</p>
            <div class="ticket-footer">
              <span class="ticket-availability" :class="ticket.availability">
                {{ ticket.availability === '充足' ? '余票充足' : 
                   ticket.availability === '适中' ? '余票适中' : 
                   ticket.availability === '紧张' ? '余票紧张' : '已售罄' }}
              </span>
              <button 
                class="btn btn-ticket"
                @click="handleBuyTicket(ticket)"
                :disabled="ticket.availability === '售罄'"
              >
                {{ ticket.availability === '售罄' ? '已售罄' : '立即抢票' }}
              </button>
            </div>
          </div>
        </div>
        
        <!-- 优惠活动 -->
        <div v-if="showDetails.promotions && showDetails.promotions.length > 0" class="promotions">
          <h3 class="promotions-title">优惠活动</h3>
          <ul class="promotions-list">
            <li v-for="(promo, index) in showDetails.promotions" :key="index">
              <span class="promo-name">{{ promo.name }}：</span>
              <span class="promo-desc">{{ promo.description }}</span>
            </li>
          </ul>
        </div>
      </section>

      <!-- 购票须知 -->
      <section class="notices-section container">
        <h2 class="section-title">购票须知</h2>
        <ul class="notices-list">
          <li v-for="(notice, index) in showDetails.notices" :key="index">
            {{ notice }}
          </li>
        </ul>
      </section>

      <!-- 用户评价 -->
      <section class="reviews-section container">
        <h2 class="section-title">用户评价</h2>
        <div class="reviews-list">
          <div v-for="review in reviews" :key="review.id" class="review-item">
            <div class="review-header">
              <span class="review-name">{{ review.name }}</span>
              <div class="review-rating">
                <span v-for="i in 5" :key="i" class="star" :class="{ active: i <= review.rating }"></span>
              </div>
              <span class="review-date">{{ review.date }}</span>
            </div>
            <p class="review-content">{{ review.content }}</p>
          </div>
        </div>
      </section>

      <!-- 常见问题 -->
      <section class="faqs-section container">
        <h2 class="section-title">常见问题</h2>
        <div class="faqs-list">
          <div v-for="faq in faqs" :key="faq.question" class="faq-item">
            <div class="faq-question">{{ faq.question }}</div>
            <div class="faq-answer">{{ faq.answer }}</div>
          </div>
        </div>
      </section>

      <!-- 相关推荐 -->
      <section class="related-section container">
        <h2 class="section-title">您可能还喜欢</h2>
        <div class="related-shows">
          <div v-for="relatedShow in relatedShows" :key="relatedShow.id" class="related-item">
            <div class="related-image">
              <img :src="relatedShow.image" :alt="relatedShow.title" />
            </div>
            <div class="related-info">
              <h3 class="related-title">{{ relatedShow.title }}</h3>
              <p class="related-date">{{ relatedShow.date }}</p>
              <p class="related-venue">{{ relatedShow.location }}</p>
              <p class="related-price">¥{{ relatedShow.price }}起</p>
              <button 
                class="btn btn-secondary"
                @click="goToRelatedShow(relatedShow.id)"
              >
                查看详情
              </button>
            </div>
          </div>
        </div>
      </section>

      <!-- 信任标识 -->
      <section class="trust-section">
        <div class="container">
          <div class="trust-logos">
            <div class="trust-logo">合作伙伴1</div>
            <div class="trust-logo">合作伙伴2</div>
            <div class="trust-logo">媒体支持1</div>
            <div class="trust-logo">媒体支持2</div>
          </div>
        </div>
      </section>
    </template>
  </div>
</template>

<style scoped>
/* 基础样式 */
:root {
  --color-primary: #2e4374;
  --color-secondary: #4a6fa5;
  --color-accent: #e53e3e;
  --color-success: #2e7d32;
  --color-warning: #f57c00;
  --color-danger: #c62828;
  --color-text: #333;
  --color-text-light: #666;
  --color-border: #e0e0e0;
  --color-background: #fff;
  --color-background-soft: #f5f7fa;
}

.show-details-container {
  min-height: 100vh;
  background-color: var(--color-background);
}

.container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 2rem;
}

/* 加载和错误状态 */
.loading-container,
.error-container {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  height: 50vh;
  gap: 1rem;
}

.loading-spinner {
  width: 40px;
  height: 40px;
  border: 4px solid var(--color-border);
  border-top: 4px solid var(--color-primary);
  border-radius: 50%;
  animation: spin 1s linear infinite;
}

@keyframes spin {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

.error-message {
  color: var(--color-accent);
  font-size: 1.1rem;
}

/* 演出英雄区域 */
.show-hero {
  background-color: var(--color-primary);
  color: white;
  padding: 4rem 0;
}

.hero-content {
  display: flex;
  gap: 3rem;
  align-items: center;
}

.show-info {
  flex: 1;
}

.show-gallery {
  flex: 1;
}

.show-title {
  font-size: 2.5rem;
  margin: 0 0 1.5rem 0;
  line-height: 1.2;
}

.show-meta {
  display: flex;
  gap: 1rem;
  margin-bottom: 1.5rem;
  flex-wrap: wrap;
}

.show-meta span {
  background-color: rgba(255, 255, 255, 0.2);
  padding: 0.3rem 0.8rem;
  border-radius: 20px;
  font-size: 0.9rem;
}

.show-basic-info {
  margin-bottom: 2rem;
}

.show-basic-info p {
  margin: 0.5rem 0;
  font-size: 1.1rem;
}

.action-buttons {
  display: flex;
  gap: 1rem;
}

/* 图片展示 */
.main-image-container {
  margin-bottom: 1rem;
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
}

.main-image {
  width: 100%;
  height: auto;
  display: block;
}

.thumbnails {
  display: flex;
  gap: 0.8rem;
}

.thumbnail {
  flex: 1;
  border-radius: 4px;
  overflow: hidden;
  cursor: pointer;
  border: 2px solid transparent;
  transition: all 0.3s ease;
}

.thumbnail:hover {
  border-color: white;
}

.thumbnail img {
  width: 100%;
  height: 80px;
  object-fit: cover;
}

/* 详情选项卡 - 皮影戏卷轴风格 */
.details-tabs {
  display: flex;
  gap: 0;
  border-bottom: 2px solid var(--color-border);
  margin-bottom: 2.5rem;
  background-color: var(--color-background-soft);
  padding: 0 1rem;
  border-radius: 8px;
}

.tab {
  padding: 1rem 1.8rem;
  cursor: pointer;
  font-weight: 600;
  color: var(--color-text-light);
  border-bottom: 3px solid transparent;
  transition: all 0.3s ease;
  font-family: 'STKaiti', '楷体', serif;
  position: relative;
}

.tab:hover {
  color: var(--color-primary);
  background-color: rgba(166, 36, 36, 0.05);
}

.tab.active {
  color: var(--color-primary);
  border-bottom-color: var(--color-primary);
  background-color: rgba(166, 36, 36, 0.08);
}

/* 选项卡装饰 */
.tab::before {
  content: '❖';
  color: var(--color-accent);
  opacity: 0;
  position: absolute;
  left: 0.5rem;
  transition: opacity 0.3s ease;
}

.tab.active::before {
  opacity: 1;
}

.tab-content {
  display: none;
  padding: 2rem;
  background-color: var(--color-background-soft);
  border-radius: 8px;
  border: 1px solid var(--color-border);
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.05);
  position: relative;
}

/* 内容区域装饰边框 */
.tab-content::before {
  content: '';
  position: absolute;
  top: 8px;
  left: 8px;
  right: 8px;
  bottom: 8px;
  border: 1px solid var(--color-accent);
  opacity: 0.3;
  pointer-events: none;
  border-radius: 6px;
}

.tab-content.active {
  display: block;
}

.section-title {
  font-size: 2.2rem;
  color: var(--color-primary);
  margin-bottom: 1.5rem;
  position: relative;
  font-family: 'STZhongsong', '华文行楷', serif;
  text-align: center;
  padding-bottom: 1rem;
}

.section-title::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 80px;
  height: 3px;
  background: linear-gradient(to right, transparent, var(--color-primary), transparent);
}

.synopsis-text {
  line-height: 1.8;
  font-size: 1.1rem;
  color: var(--color-text);
  font-family: 'STKaiti', '楷体', serif;
  background-color: var(--color-background);
  padding: 1.5rem;
  border-radius: 6px;
  border-left: 4px solid var(--color-primary);
}

.highlights-list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.highlights-list li {
  padding: 0.8rem 0;
  padding-left: 1.5rem;
  position: relative;
  font-size: 1.1rem;
  line-height: 1.6;
}

.highlights-list li::before {
  content: '✦';
  position: absolute;
  left: 0;
  color: var(--color-primary);
  font-weight: bold;
}

.cast-info p,
.venue-info p {
  margin: 0.8rem 0;
  font-size: 1.1rem;
  line-height: 1.6;
}

.map-placeholder {
  margin-top: 1.5rem;
  height: 200px;
  background-color: var(--color-background-soft);
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
  color: var(--color-text-light);
}

/* 票档样式 */
.ticket-types {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 1.5rem;
  margin-bottom: 3rem;
}

.ticket-type {
  border: 2px solid var(--color-border);
  border-radius: 12px;
  padding: 2rem;
  transition: all 0.3s ease;
  position: relative;
  background-color: var(--color-background);
}

.ticket-type:hover {
  transform: translateY(-5px);
  box-shadow: 0 8px 25px rgba(0, 0, 0, 0.1);
  border-color: var(--color-primary);
}

.ticket-type.sold-out {
  opacity: 0.6;
  pointer-events: none;
}

.ticket-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 1rem;
}

.ticket-name {
  font-size: 1.3rem;
  font-weight: 600;
  color: var(--color-primary);
  margin: 0;
}

.ticket-price {
  font-size: 1.8rem;
  font-weight: 700;
  color: var(--color-accent);
}

.ticket-description {
  color: var(--color-text-light);
  line-height: 1.6;
  margin-bottom: 1.5rem;
}

.ticket-footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.ticket-availability {
  font-size: 0.9rem;
  padding: 0.3rem 0.8rem;
  border-radius: 20px;
  font-weight: 600;
}

.ticket-availability.充足 {
  background-color: rgba(46, 125, 50, 0.1);
  color: var(--color-success);
}

.ticket-availability.适中 {
  background-color: rgba(245, 124, 0, 0.1);
  color: var(--color-warning);
}

.ticket-availability.紧张 {
  background-color: rgba(198, 40, 40, 0.1);
  color: var(--color-danger);
}

.ticket-availability.售罄 {
  background-color: rgba(0, 0, 0, 0.1);
  color: var(--color-text-light);
}

.btn-ticket {
  padding: 0.8rem 1.5rem;
  background-color: var(--color-accent);
  color: white;
  border: none;
  border-radius: 6px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.3s ease;
}

.btn-ticket:hover:not(:disabled) {
  background-color: #c53030;
  transform: translateY(-2px);
}

.btn-ticket:disabled {
  background-color: var(--color-text-light);
  cursor: not-allowed;
}

/* 优惠活动 */
.promotions {
  background-color: var(--color-background-soft);
  padding: 1.5rem;
  border-radius: 8px;
}

.promotions-title {
  color: var(--color-primary);
  margin-bottom: 1rem;
  font-size: 1.3rem;
}

.promotions-list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.promotions-list li {
  padding: 0.5rem 0;
  display: flex;
  align-items: flex-start;
}

.promo-name {
  font-weight: 600;
  color: var(--color-accent);
}

.promo-desc {
  color: var(--color-text);
}

/* 购票须知 */
.notices-section {
  background-color: var(--color-background-soft);
  padding: 2rem 0;
}

.notices-list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.notices-list li {
  padding: 0.8rem 0;
  padding-left: 1.5rem;
  position: relative;
  line-height: 1.6;
}

.notices-list li::before {
  content: '⚠️';
  position: absolute;
  left: 0;
}

/* 用户评价 */
.review-item {
  background-color: var(--color-background-soft);
  padding: 1.5rem;
  border-radius: 8px;
  margin-bottom: 1.5rem;
}

.review-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 1rem;
}

.review-name {
  font-weight: 600;
  color: var(--color-primary);
}

.review-rating {
  display: flex;
  gap: 0.2rem;
}

.star {
  color: var(--color-border);
  font-size: 1.2rem;
}

.star.active {
  color: #ffb400;
}

.review-date {
  color: var(--color-text-light);
  font-size: 0.9rem;
}

.review-content {
  line-height: 1.6;
  color: var(--color-text);
}

/* 常见问题 */
.faq-item {
  border-bottom: 1px solid var(--color-border);
  padding: 1rem 0;
}

.faq-item:last-child {
  border-bottom: none;
}

.faq-question {
  font-weight: 600;
  color: var(--color-primary);
  margin-bottom: 0.5rem;
}

.faq-answer {
  color: var(--color-text);
  line-height: 1.6;
}

/* 相关推荐 */
.related-shows {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 2rem;
}

.related-item {
  border: 1px solid var(--color-border);
  border-radius: 8px;
  overflow: hidden;
  transition: all 0.3s ease;
}

.related-item:hover {
  transform: translateY(-5px);
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.1);
}

.related-image {
  height: 180px;
  overflow: hidden;
}

.related-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s ease;
}

.related-item:hover .related-image img {
  transform: scale(1.05);
}

.related-info {
  padding: 1.5rem;
}

.related-title {
  margin: 0 0 0.5rem 0;
  color: var(--color-primary);
}

.related-date,
.related-venue {
  margin: 0.3rem 0;
  font-size: 0.95rem;
  color: var(--color-text-light);
}

.related-price {
  font-size: 1.2rem;
  font-weight: 600;
  color: var(--color-accent);
  margin: 0.8rem 0;
}

/* 信任标识 */
.trust-section {
  background-color: var(--color-background-soft);
  padding: 2rem 0;
}

.trust-logos {
  display: flex;
  justify-content: space-around;
  align-items: center;
  flex-wrap: wrap;
  gap: 2rem;
}

.trust-logo {
  width: 120px;
  height: 60px;
  background-color: white;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 4px;
  color: var(--color-text-light);
  font-size: 0.9rem;
}

/* 按钮通用样式 */
.btn {
  padding: 0.8rem 1.5rem;
  border-radius: 6px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.3s ease;
  text-decoration: none;
  display: inline-block;
  text-align: center;
  border: none;
}

.btn-primary {
  background-color: var(--color-primary);
  color: white;
}

.btn-primary:hover {
  background-color: var(--color-secondary);
  transform: translateY(-2px);
}

.btn-secondary {
  background-color: transparent;
  border: 2px solid var(--color-primary);
  color: var(--color-primary);
}

.btn-secondary:hover {
  background-color: var(--color-primary);
  color: white;
}

/* 响应式设计 */
@media (max-width: 768px) {
  .hero-content {
    flex-direction: column;
    gap: 2rem;
  }
  
  .show-title {
    font-size: 2rem;
  }
  
  .ticket-types {
    grid-template-columns: 1fr;
  }
  
  .related-shows {
    grid-template-columns: 1fr;
  }
  
  .details-tabs {
    flex-wrap: wrap;
  }
  
  .tab {
    flex: 1;
    min-width: 100px;
    text-align: center;
  }
}
</style>